'use strict';
module.exports = app => {
  const { STRING, BIGINT, TINYINT, TEXT } = app.Sequelize;

  const Article = app.model.define('article', {
    top: {
      type: TINYINT,
      allowNull: false,
      defaultValue: 0,
      omment: '用于判断是否置顶，置顶为1，否则为0',
    },
    title: {//
      type: STRING, // VARCHAR(255)
      allowNull: false, // allowNull 默认为 true 不能为空设置为 false ,
      omment: '标题', // 注释
    },
    user_id: {
      type: BIGINT, // VARCHAR(255)
      allowNull: false, // allowNull 默认为 true 不能为空设置为 false ,
      omment: '用户id', // 注释
    },
    category_id: {
      type: BIGINT, // VARCHAR(255)
      allowNull: false, // allowNull 默认为 true 不能为空设置为 false ,
      omment: '分类id', // 注释
    },
    content: {
      type: TEXT,
      allowNull: false,
      omment: '文章内容',
    },
    // aut_name: {
    //   type: STRING,
    //   allowNull: false,
    //   omment: '作者名',
    // },
    // aut_photo: {
    //   type: STRING,
    //   omment: '作者头像url 无图片，默认为null	',
    // },
    cover_img: {
      type: STRING,
      omment: '封面的URL地址',
    },
    cover_type: {
      type: TINYINT,
      defaultValue: 0,
      omment: '封面类型 0-无图，1-1张，3-3张,10:自动',
    },
    comment_count: {
      type: BIGINT,
      allowNull: false,
      defaultValue: 0,
      omment: '评论数',
    },
    like_count: {
      type: BIGINT,
      allowNull: false,
      defaultValue: 0,
      omment: '点赞数',
    },
    read_count: {
      type: BIGINT,
      allowNull: false,
      defaultValue: 0,
      omment: '阅读数',
    },
    status: {
      type: TINYINT,
      allowNull: false,
      defaultValue: 1,
      comment: '状态(0:草稿;1:审核中;2:审核通过;3审核失败;4:回收站)',
    },

  });
  // Article.associate = () => {
  //   app.model.Article.belongsToMany(app.model.ArticleCategory, {
  //     as: 'category',
  //     through: app.model.AssArticleCategory,
  //     foreignKey: 'article_id',
  //     otherKey: 'category_id',
  //   });
  // };


  Article.associate = () => {
    // 一篇文章包含一个分类 // 创建一个 一对多 关系, hasMany he belongsTo 关联一起使用;
    app.model.Article.belongsTo(app.model.ArticleCategory, { as: 'category', foreignKey: 'category_id' });
    // 这篇文章是哪个用户发的
    app.model.Article.belongsTo(app.model.User, { as: 'user', foreignKey: 'user_id' });
    //   app.model.Article.belongsToMany(app.model.ArticleCategory, {
    //     as: 'category',
    //     through: app.model.AssArticleCategory,
    //     foreignKey: 'article_id',
    //     otherKey: 'category_id',
    //   });

  };

  return Article;
};
